// pages/login/login.js
/**
 说明: 登录流程
 1. 收集表单项数据
 2. 前端验证
 1) 验证用户信息(账号，密码)是否合法
 2) 前端验证不通过就提示用户，不需要发请求给后端
 3) 前端验证通过了，发请求(携带账号, 密码)给服务器端
 3. 后端验证
 1) 验证用户是否存在
 2) 用户不存在直接返回，告诉前端用户不存在
 3) 用户存在需要验证密码是否正确
 4) 密码不正确返回给前端提示密码不正确
 5) 密码正确返回给前端数据，提示用户登录成功(会携带用户的相关信息)
 */
import request from "../../utils/request";

Page({

    /**
     * 页面的初始数据
     */
    data: {
        phone: "",      //用户手机号
        password: "",   //用户密码

    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {

    },
    //表单项内容发生改变时的回调
    handleInput(event) {
        let type = event.currentTarget.id; //跟前端页面同名 phone | password
        this.setData({
            //变量需要用[]
            [type]: event.detail.value,
        })
    },

    //登录回调
    async login(){
       //手机表单项数据
       let {phone, password} = this.data;
       //前端验证
       /*
       * 手机号验证
       *    1.内容为空
       *    2、手机号格式不正确
       *    3、手机号格式正确，验证通过
       */
       if (!phone){
           //提示用户输入错误
           wx.showToast({
               title: '手机号为空',
               icon: 'error',
           })
           return;
       }

       //定义正则表达式，判断用户手机号是否符合规范
       let phoneReg = /^1(3|4|5|6|7|8|9)\d{9}$/;
       if(!phoneReg.test(phone)){
           //提示用户输入错误
           wx.showToast({
               title: '手机号格式错误',
               icon: 'error',
           })
           return;
       }
       // 判断用户输入的密码是否为空
        if (!password){
            //提示用户输入错误
            wx.showToast({
                title: '密码为空',
                icon: 'error',
            })
            return;
        }

        let result = await request("/login/cellphone", {phone, password, isLogin: true})
        /*登录成功*/
        if (result.code === 200){
            wx.showToast({
                title: '登录成功',
                icon: 'success',
            })
            // console.log("login.js==> result:  ",result)
            //将用户信息存储到本地
            try {
                wx.setStorageSync('userInfo', JSON.stringify(result.profile));
            } catch (e) {
                console.log(e)
            }

            // 跳转至”我的“页面
            /*reLaunch关闭所有页面，打开到应用内的某个页面
            * 不能使用switchTab，因为switchTab不会关闭原来页面，使用onLoad方法。*/
            wx.reLaunch({
                url: '/pages/personal/personal'
            })

        }else if (result.code === 400){
            wx.showToast({
                title: '手机号错误',
                icon: 'error',
            })
        }else if (result.code === 502){
            wx.showToast({
                title: '密码错误',
                icon: 'error',
            })
        }else {
            wx.showToast({
                title: '登录失败，请重新登录',
                icon: 'error',
            })
        }


    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})